package com.lngsyz.ywtb.pay.entity;

import java.math.BigDecimal;
import java.util.List;

import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;

import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;

/**
 * 印章交易主对象 seal_trade_main_info
 * 
 * @author seabert
 * @date 2020-10-29
 */
public class SealTradeMainInfoVO extends BaseVO
{

	private static final long serialVersionUID = -5399347142843302449L;
	
	/** 交易通道 */
	private String tradeChannel;

	/** 交易金额(元) */
	private BigDecimal totalAmount;

	/** 订单标题 */
	private String subject;

	/** 付费组织统一社会信用代码 */
	private String payOrganizeCode;

	/** 付费组织名称 */
	private String payOrganizeName;
	
	/** 制作组织统一社会信用代码 */
	private String makeOrganizeCode;
	
	/** 制作组织名称 */
	private String makeOrganizeName;
	
	/** 承接组织同步编号 */
	private String kqId;
	
	/** 商品明细 */
	private List<SealTradeDetailsInfoVO> SealTradeDetailsInfoList;
	
	/** 备注 */
	private String remark;
	
	/** 通知回调接口地址 */
	private String notifyUrl;

	
	/** 交易通道 */
	public void setTradeChannel(String tradeChannel) {
		this.tradeChannel = tradeChannel;
	}
	/** 交易通道 */
	public String getTradeChannel() {
		return tradeChannel;
	}
	/** 交易金额(元) */
	public void setTotalAmount(BigDecimal totalAmount) {
		this.totalAmount = totalAmount;
	}
	/** 交易金额(元) */
	public BigDecimal getTotalAmount() {
		return totalAmount;
	}
	/** 订单标题 */
	public void setSubject(String subject) {
		this.subject = subject;
	}
	/** 订单标题 */
	public String getSubject() {
		return subject;
	}
	/** 付费组织统一社会信用代码 */
	public String getPayOrganizeCode() {
		return payOrganizeCode;
	}
	/** 付费组织统一社会信用代码 */
	public void setPayOrganizeCode(String payOrganizeCode) {
		this.payOrganizeCode = payOrganizeCode;
	}
	/** 付费组织名称 */
	public String getPayOrganizeName() {
		return payOrganizeName;
	}
	/** 付费组织名称 */
	public void setPayOrganizeName(String payOrganizeName) {
		this.payOrganizeName = payOrganizeName;
	}
	/** 制作组织统一社会信用代码 */
	public String getMakeOrganizeCode() {
		return makeOrganizeCode;
	}
	/** 制作组织统一社会信用代码 */
	public void setMakeOrganizeCode(String makeOrganizeCode) {
		this.makeOrganizeCode = makeOrganizeCode;
	}
	/** 制作组织名称 */
	public String getMakeOrganizeName() {
		return makeOrganizeName;
	}
	/** 制作组织名称 */
	public void setMakeOrganizeName(String makeOrganizeName) {
		this.makeOrganizeName = makeOrganizeName;
	}
	public String getKqId() {
		return kqId;
	}
	public void setKqId(String kqId) {
		this.kqId = kqId;
	}
	/** 商品明细 */
	public List<SealTradeDetailsInfoVO> getSealTradeDetailsInfoList() {
		return SealTradeDetailsInfoList;
	}
	/** 商品明细 */
	public void setSealTradeDetailsInfoList(List<SealTradeDetailsInfoVO> sealTradeDetailsInfoList) {
		SealTradeDetailsInfoList = sealTradeDetailsInfoList;
	}
	/** 备注 */
	public String getRemark() {
		return remark;
	}
	/** 备注 */
	public void setRemark(String remark) {
		this.remark = remark;
	}
	/** 通知回调接口地址 */
	public String getNotifyUrl() {
		return notifyUrl;
	}
	/** 通知回调接口地址 */
	public void setNotifyUrl(String notifyUrl) {
		this.notifyUrl = notifyUrl;
	}

	@Override
    public String toString() {
    	JSONArray sealTradeDetailsInfoList= JSONArray.parseArray(JSON.toJSONString(getSealTradeDetailsInfoList()));
        return new ToStringBuilder(this,ToStringStyle.JSON_STYLE)
        	.append("appId", getAppId())
            .append("tradeChannel", getTradeChannel())
            .append("totalAmount", getTotalAmount())
            .append("subject", getSubject())
            .append("payOrganizeCode", getPayOrganizeCode())
            .append("payOrganizeName", getPayOrganizeName())
            .append("makeOrganizeCode", getMakeOrganizeCode())
            .append("makeOrganizeName", getMakeOrganizeName())
            .append("sealTradeDetailsInfoList", sealTradeDetailsInfoList)
            .append("remark", getRemark())
            .append("notifyUrl", getNotifyUrl())
            .append("signed", getSigned())
            .toString();
    }
    
	@Override
    public String toSign() {
    	JSONArray sealTradeDetailsInfoList= JSONArray.parseArray(JSON.toJSONString(getSealTradeDetailsInfoList()));
        return new ToStringBuilder(this,ToStringStyle.JSON_STYLE)
        	.append("appId", getAppId())
            .append("tradeChannel", getTradeChannel())
            .append("totalAmount", getTotalAmount())
            .append("subject", getSubject())
            .append("payOrganizeCode", getPayOrganizeCode())
            .append("payOrganizeName", getPayOrganizeName())
            .append("makeOrganizeCode", getMakeOrganizeCode())
            .append("makeOrganizeName", getMakeOrganizeName())
            .append("sealTradeDetailsInfoList", sealTradeDetailsInfoList)
            .append("remark", getRemark())
            .append("notifyUrl", getNotifyUrl())
            .toString();
    }
}
